home *** CD-ROM | disk | FTP | other *** search
Makefile | 1995-01-23 | 11.7 KB | 446 lines |
- ############################################################
- # Makefile for the WebForum WWW package
-
- ############################################################
- #
- # Configuration: Please Note that many of these are "sed"
- # replaced into scripts using ^ as the
- # separator character. If you wish to use ^
- # in your name, for example, you must escape
- # it, i.e., \^
- #
- ############################################################
-
- # Creator - you
- CREATOR=<a href=mailto:afzal\\@divsun.unige.ch>Afzal Ballim</a>
-
- #your email address
- CREADDR=afzal\\@divsun.unige.ch, petitp\\@divsun.unige.ch
-
- #Your server's type: currently only NCSA httpd is supported
- SERVER_TYPE=NCSAhttpd
-
- # Your server's url, don't forget that trailing /
- SERVER_NAME=http://issco-www.unige.ch/
-
- ###############################################################
- # Physcial roots that are used by the makefile and some scripts
-
- # Absolute WWW root: the complete path of the WWW root on your server
- AbsWWWRoot=/home/isscowww/www
-
- # Absolute cgi-bin path
- AbsCGIBin=/home/isscowww/httpd/cgi-bin
-
- #Url path to the base bin directory
- UrlBin=/cgi-bin
-
- #The name of the subdirectory for the WebForum package
- WebForumBase=WebForum
-
- # The name of a directory where outgoing mail is queued for handling
- MAILQUEUE=/home/isscowww/out_queue
-
- ############################################################
- # locations of programs
-
- Perl=/usr/local/bin/perl5
-
- sed=/usr/local/bin/sed
-
- # Your command that sends mail from a file
- # The command should not require command-line arguments
- # for subject and "to"
- sendmail=/usr/local/bin/sendean
-
- ############################################################
- #
- # logging facilities
-
- LogFile=/home/isscowww/in_queue/WFLog
-
- # LogLevel: 0 = no logging
- # 1 = only at top level
- # 2 = all commands
- LogLevel=2
-
- ############################################################
- ############################################################
- #
- # End configuration - do not change anything below this line
- # Any changes below are at your peril
- #
- # The only place where you might want to make changes is
- # under access control if you do not use the standard names
- # for NCCSA httpd access control (.htaccess, etc.)
- #
- ############################################################
- ############################################################
-
- ############################################################
- #
- # DERIVED VARIABLES
-
- # and the subdirectory for this package
- AbsWFRoot=$(AbsWWWRoot)/$(WebForumBase)
-
- # cgi path for this package
- AbsWFBin=$(AbsCGIBin)/$(WebForumBase)
-
- AbsWFCtrlBin=$(AbsWFBin)/ctrl
- AbsWFAdminBin=$(AbsWFBin)/admin
-
- #Complete URL
- UrlWFComplete=$(SERVER_NAME)$(WebForumBase)/
-
- # URL WWW root: Where the index, registry, and messages go
- UrlWFRoot=/$(WebForumBase)
-
- # URL for script bin for this package
- UrlWFBin=$(UrlBin)/$(WebForumBase)
-
- UrlWFCtrlBin=$(UrlWFBin)/ctrl
- UrlWFAdminBin=$(UrlWFBin)/admin
-
- DATE:sh=date
-
- AbsWFDbase=$(AbsWFRoot)/.dbase
- AbsWFSpool=$(AbsWFRoot)/.spool
- AbsWFHtml=$(AbsWFRoot)/.html
-
- Directories=$(AbsWFRoot)\
- $(AbsWFDbase) $(AbsWFDbase)/guest $(AbsWFDbase)/wfroot \
- $(AbsWFSpool) $(AbsWFHtml)\
- $(AbsWFBin) $(AbsWFCtrlBin) $(AbsWFAdminBin)
-
- ############################################################
- #
- # script and html page names: used in sed script replacements
- # as well as in some target/dependencies of the Makefile
- #
- # When you change things here, don't forget to change the sed
- # section as well.
-
- LIBWEBFORUM.PL=libWebForum.pl
- TOP.PL=top.pl
- FORUM.PL=forum.pl
- SUBJECT.PL=subject.pl
- REGISTER.PL=register.pl
- POST.PL=post.pl
- MKMSG.PL=mkmsg.pl
- CANCEL.PL=cancel.pl
- WFCOMMAND.PL=wfcommand.pl
-
- TESTCOMMAND.PL=interfacecom.pl
- SMAIL.PL=SMail.pl
-
- ADMIN.PL=adm_command.pl
- ADSHOWUSERS.PL=adm_showusers.pl
- ADADDFORUM.PL=adm_adforum.pl
- ADAGRP.PL=adm_adgrp.pl
- ADAUS.PL=adm_aduser.pl
- ADSNR.PL=adm_shownreg.pl
- ADUNR.PL=adm_updus.pl
- ADDLF.PL=adm_delf.pl
- ADDGRP.PL=adm_delgrp.pl
- ADDLU.PL=adm_delu.pl
- ADSGRP.PL=adm_showgroups.pl
- ADGMU.PL=adm_grpmu.pl
- ADGPU.PL=adm_grppu.pl
- ADSFG.PL=adm_showfg.pl
- ADFPG.PL=adm_fmpgrp.pl
- ADFMG.PL=adm_fmmgrp.pl
- ADFAP.PL=adm_fmauxpost.pl
- ADEXPIRE.PL=expire.pl
- ADPERIODMAIL.PL=periodmail.pl
- ADMTEST.PL=test_adm.pl
-
- PSCRIPTS=$(LIBWEBFORUM.PL) $(REGISTER.PL)
- CSCRIPTS=$(WFCOMMAND.PL) $(TOP.PL) $(FORUM.PL) $(SUBJECT.PL)\
- $(POST.PL) $(MKMSG.PL) $(CANCEL.PL) $(SMAIL.PL)
- ASCRIPTS=$(TESTCOMMAND.PL) $(ADMIN.PL) $(ADSHOWUSERS.PL)\
- $(ADADDFORUM.PL) $(ADSNR.PL) $(ADUNR.PL) $(ADDLF.PL)\
- $(ADSGRP.PL) $(ADAGRP.PL) $(ADDGRP.PL) $(ADAUS.PL)\
- $(ADGMU.PL) $(ADDLU.PL) $(ADSFG.PL) $(ADGPU.PL)\
- $(ADFPG.PL) $(ADFMG.PL) $(ADFAP.PL) $(ADEXPIRE.PL)\
- $(ADPERIODMAIL.PL) $(ADMTEST.PL)
-
- INDEX.HTML=index.html
- REGISTER.HTML=register.html
- TOP.HTML=top.html
- FORUM.HTML=forum.html
- SUBJECT.HTML=subject.html
- POST.HTML=post.html
- AKF.HTML=AKF.html
- ADMIN.HTML=admin.html
-
- HTMLS=$(REGISTER.HTML) $(TOP.HTML) $(FORUM.HTML) $(SUBJECT.HTML)\
- $(POST.HTML)
-
- SpecialReg=$(AbsWFRoot)/$(REGISTER.HTML)
- SpecialIndex=$(AbsWFRoot)/$(INDEX.HTML)
- SpecialAKF=$(AbsWFRoot)/$(AKF.HTML)
- SpecialAdmin=$(AbsWFDbase)/$(ADMIN.HTML)
-
- SpecialHTML= $(SpecialReg) $(SpecialIndex) $(SpecialAKF) $(SpecialAdmin)
-
- PSCRIPTS_TGT=$(PSCRIPTS:%=$(AbsWFBin)/%)
- CSCRIPTS_TGT=$(CSCRIPTS:%=$(AbsWFCtrlBin)/%)
- ASCRIPTS_TGT=$(ASCRIPTS:%=$(AbsWFAdminBin)/%)
- HTMLS_TGT=$(HTMLS:%=$(AbsWFHtml)/%)
-
- ############################################################
- # Access control
-
- HTACCESS=.htaccess
- HTPASSWD=.htpasswd
- HTGROUP=.htgroup
-
- PASSWDFile= $(AbsWFDbase)/$(HTPASSWD)
- GROUPFile= $(AbsWFDbase)/$(HTGROUP)
- AdminACCESSFiles= $(AbsWFDbase)/$(HTACCESS) $(AbsWFSpool)/$(HTACCESS)\
- $(AbsWFAdminBin)/$(HTACCESS)
- MasterACCESSFile=$(AbsWFCtrlBin)/$(HTACCESS)
-
- MkAccess=mkaccessfile
-
- AccessControl=$(MkAccess) $(PASSWDFile) $(GROUPFile)\
- $(AdminACCESSFiles) $(MasterACCESSFile)
-
- ############################################################
- #
- # sed replacement scripts: used to customise the installation
- # according to the Makefile configuration. Special strings
- # in the scripts and HTML pages are automatically replaced
- # by the values that they should point to. This is worked
- # out here. The sed scripts contains the full list of
- # such strings.
- #
-
- DCsed='s^DATE^$(DATE)^g' \
- 's^CREATOR^$(CREATOR)^g'\
- 's^CREADDR^$(CREADDR)^g'\
- 's^SERVER_NAME^$(SERVER_NAME)^g'\
- 's^URLWFCOMPLETE^$(UrlWFComplete)^g'\
- 's^SENDMAIL^$(sendmail)^g'\
- 's^LOGLEVEL^$(LogLevel)^g'\
- 's^LOGFILE^$(LogFile)^g'\
- 's^MAILQUEUE^$(MAILQUEUE)^g'
-
- DIRsed= 's^ABSWWWROOT^$(AbsWWWRoot)^g'\
- 's^ABSCGIBIN^$(AbsCGIBin)^g'\
- 's^ABSWFROOT^$(AbsWFRoot)^g'\
- 's^ABSWFCTRLBIN^$(AbsWFCtrlBin)^g'\
- 's^ABSWFADMINBIN^$(AbsWFAdminBin)^g'\
- 's^ABSWFBIN^$(AbsWFBin)^g'\
- 's^ABSWFDBASE^$(AbsWFDbase)^g'\
- 's^ABSWFSPOOL^$(AbsWFSpool)^g'\
- 's^ABSWFHTML^$(AbsWFHtml)^g'\
- 's^URLWFROOT^$(UrlWFRoot)^g'\
- 's^URLWFCTRLBIN^$(UrlWFCtrlBin)^g'\
- 's^URLWFADMINBIN^$(UrlWFAdminBin)^g'\
- 's^URLWFBIN^$(UrlWFBin)^g'\
- 's^URLWFBIN^$(UrlWFBin)^g'
-
- ACCsed= 's^PASSWDFILE^$(PASSWDFile)^g'\
- 's^ACCESSFILE^$(HTACCESS)^g'\
- 's^GROUPFILE^$(GROUPFile)^g'
-
- SCRIPTsed='s^LIBWEBFORUM.PL^$(LIBWEBFORUM.PL)^g'\
- 's^STD_REGISTER.PL^$(REGISTER.PL)^g'\
- 's^STD_WFCOMMAND.PL^$(WFCOMMAND.PL)^g'\
- 's^STD_TESTCOMMAND.PL^$(TESTCOMMAND.PL)^g'\
- 's^STD_TOP.PL^$(TOP.PL)^g'\
- 's^STD_FORUM.PL^$(FORUM.PL)^g'\
- 's^STD_SUBJECT.PL^$(SUBJECT.PL)^g'\
- 's^STD_MESSAGE.PL^$(MESSAGE.PL)^g'\
- 's^STD_SCRM.PL^$(SCRM.PL)^g'\
- 's^STD_POST.PL^$(POST.PL)^g'\
- 's^STD_MKMSG.PL^$(MKMSG.PL)^g'\
- 's^STD_CANCEL.PL^$(CANCEL.PL)^g'\
- 's^STD_SMAIL.PL^$(SMAIL.PL)^g'\
- 's^ADM_DOCOMMAND^$(ADMIN.PL)^g'\
- 's^ADM_SHOWUSERS.PL^$(ADSHOWUSERS.PL)^g'\
- 's^ADM_ADDFORUM.PL^$(ADADDFORUM.PL)^g'\
- 's^ADM_SHOWNREG.PL^$(ADSNR.PL)^g'\
- 's^ADM_UPDNR.PL^$(ADUNR.PL)^g'\
- 's^ADM_DELETEFORUM.PL^$(ADDLF.PL)^g'\
- 's^ADM_SHOWGROUPS.PL^$(ADSGRP.PL)^g'\
- 's^ADM_ADDGROUP.PL^$(ADAGRP.PL)^g'\
- 's^ADM_DELETEGROUP.PL^$(ADDGRP.PL)^g'\
- 's^ADM_ADDUSER.PL^$(ADAUS.PL)^g'\
- 's^ADM_DELETEUSER.PL^$(ADDLU.PL)^g'\
- 's^ADM_GROUPMU.PL^$(ADGMU.PL)^g'\
- 's^ADM_GROUPPU.PL^$(ADGPU.PL)^g'\
- 's^ADM_FORUMPG.PL^$(ADFPG.PL)^g'\
- 's^ADM_FORUMMG.PL^$(ADFMG.PL)^g'\
- 's^ADM_AUXPOST.PL^$(ADFAP.PL)^g'\
- 's^ADM_EXPIRE.PL^$(ADEXPIRE.PL)^g'\
- 's^ADM_PERIODMAIL.PL^$(ADPERIODMAIL.PL)^g'\
- 's^ADM_SHOWFORUMSGROUPS.PL^$(ADSFG.PL)^g'\
- 's^STD_DOCOMMAND^$(UrlWFCtrlBin)/$(WFCOMMAND.PL)^g'
-
- HTMLsed='s^INDEX.HTML^$(INDEX.HTML)^g'\
- 's^TOP.HTML^$(TOP.HTML)^g'\
- 's^FORUM.HTML^$(FORUM.HTML)^g'\
- 's^SUBJECT.HTML^$(SUBJECT.HTML)^g'\
- 's^MESSAGE.HTML^$(MESSAGE.HTML)^g'\
- 's^POST.HTML^$(POST.HTML)^g'\
- 's^AKF.HTML^$(AKF.HTML)^g'\
- 's^ADMIN.HTML^$(ADMIN.HTML)^g'\
- 's^REGISTER.HTML^$(REGISTER.HTML)^g'
-
- ALLsed=$(DCsed) $(DIRsed) $(HTMLsed) $(SCRIPTsed) $(ACCsed)
- SEDSCRIPTS=sedscripts
-
- ############################################################
- # the makeable dependencies
-
- .SILENT:
-
- WebForum=$(Directories) $(AccessControl)\
- $(SEDSCRIPTS) \
- $(HTMLS_TGT) \
- $(PSCRIPTS_TGT) \
- $(CSCRIPTS_TGT) \
- $(ASCRIPTS_TGT) \
- $(SpecialHTML)
-
- all: $(WebForum)
- echo "Made $(WebForumBase)..."
-
- uninstall:
- echo "Uninstalling $(WebForumBase)"
- (cd $(AbsWWWRoot);\
- rm -rf $(AbsWFRoot))
- (cd $(AbsCGIBin);\
- rm -rf $(AbsWFBin))
-
- clean: uninstall
- rm $(MkAccess)
-
- ############################################################
- # Directory dependencies
-
- $(AbsWFBin): $(AbsCGIBin)
- echo "Making $@"
- mkdir $@
- $(AbsWFCtrlBin): $(AbsWFBin)
- echo "Making $@"
- mkdir $@
- $(AbsWFAdminBin): $(AbsWFBin)
- echo "Making $@"
- mkdir $@
-
- $(AbsWFRoot): $(AbsWWWRoot)
- echo "Making $@"
- (umask 000;\
- mkdir $@)
- $(AbsWFDbase): $(AbsWFRoot)
- echo "Making $@"
- (umask 000;\
- mkdir $@)
-
- $(AbsWFDbase)/guest: $(AbsWFRoot) dbase/guest
- echo "Making $@"
- cp dbase/guest $@
- chmod a+w $@
-
- $(AbsWFDbase)/wfroot: $(AbsWFRoot) dbase/wfroot
- echo "Making $@"
- $(sed) -f $(SEDSCRIPTS) dbase/wfroot > $@
- chmod a+w $@
-
- $(AbsWFSpool): $(AbsWFRoot)
- echo "Making $@"
- (umask 000;\
- mkdir $@)
- $(AbsWFHtml): $(AbsWFRoot)
- echo "Making $@"
- (umask 000;\
- mkdir $@)
-
- ############################################################
- # Access Control
-
- $(PASSWDFile): $(AbsWFDbase)
- echo "Making $@"
- echo "wfroot:wfYnaoT7ej6kw" >$(PASSWDFile)
- echo "guest:guVeRgi5kAY4k" >>$(PASSWDFile)
-
- $(GROUPFile): $(AbsWFDbase)
- echo "Making $@"
- echo "webmasters:wfroot" >$(GROUPFile)
- echo "webforum:guest" >>$(GROUPFile)
-
- $(AdminACCESSFiles): $${@:%/$(HTACCESS)=%} $(MkAccess)
- echo "Making $@"
- $(MkAccess) $@ $(PASSWDFile) $(GROUPFile)
-
- $(MasterACCESSFile): $${@:%/$(HTACCESS)=%} $(MkAccess)
- echo "Making $@"
- $(MkAccess) $@ $(PASSWDFile) $(GROUPFile) all
-
- $(MkAccess): src/mkaccess.pl
- echo "Making $@"
- echo "#!$(Perl)" >$(MkAccess)
- $(sed) -e 's/DATE/$(DATE)/g' src/mkaccess.pl >>$(MkAccess)
- chmod a+x $(MkAccess)
-
- ############################################################
- # scripts and htmls
-
- $(SEDSCRIPTS): src/* html/*
- echo "Making $@"
- echo $(ALLsed) > $(SEDSCRIPTS).tmp
- $(Perl) -ne 's/\^g/^g\n/g;print;' <$(SEDSCRIPTS).tmp >$(SEDSCRIPTS)
- rm $(SEDSCRIPTS).tmp
-
- $(AbsWFHtml)/% : html/%
- echo "Making $@"
- $(sed) -f $(SEDSCRIPTS) $< > $@
-
- $(AbsWFBin)/% : src/%
- echo "Making $@"
- echo "#!$(Perl)" > $@
- $(sed) -f $(SEDSCRIPTS) $< >> $@
- chmod a+x $@
-
- $(AbsWFCtrlBin)/% : src/%
- echo "Making $@"
- echo "#!$(Perl)" > $@
- $(sed) -f $(SEDSCRIPTS) $< >> $@
- chmod a+x $@
-
- $(AbsWFAdminBin)/% : src/%
- echo "Making $@"
- echo "#!$(Perl)" > $@
- $(sed) -f $(SEDSCRIPTS) $< >> $@
- chmod a+x $@
-
- ############################################################
- # Special files that need individual treatment
-
- $(SpecialReg): html/$(REGISTER.HTML)
- echo "Making $@"
- $(sed) -f $(SEDSCRIPTS)\
- -e 's^UID^^g'\
- -e 's^PASSWD^^g'\
- -e 's^VFY^^g'\
- -e 's^RNAME^^g'\
- -e 's^EMAIL^^g'\
- -e 's^HURL^^g'\
- $? > $@
-
- $(SpecialIndex): html/$(INDEX.HTML)
- echo "Making $@"
- $(sed) -f $(SEDSCRIPTS) $? > $@
-
- $(SpecialAKF): html/$(AKF.HTML)
- echo "Making $@"
- $(sed) -f $(SEDSCRIPTS) $? > $@
-
- $(SpecialAdmin): html/$(ADMIN.HTML)
- echo "Making $@"
- $(sed) -f $(SEDSCRIPTS) $? > $(AbsWFDbase)/admin.html
-